package com.wang.luntan.users.pojo;

import com.wang.luntan.common.pojo.BasePojo;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 意见表
 *
 * @TableName at_opinion_desc
 */
@Data
public class AtOpinionDesc extends BasePojo<AtOpinionDesc> implements Serializable {
    /**
     * 主键
     */
    private Integer id;

    /**
     * 意见类型Id
     */
    private Integer typeId;

    /**
     * 上一级Id(回复);0:表示根节点
     */
    private Integer parentId;

    /**
     * 创建人Id
     */
    private Integer createId;
    /**
     * 名字
     */
    private String name;

    /**
     * 内容
     */
    private String content;

    /**
     * 状态:0:草稿;1:已发布;
     */
    private byte status;

    /**
     * 0:顶;1:踩
     */
    private Integer upDown;

    /**
     * 类型:0:普通,1:热门,2:精华
     */
    private byte opType;

    /**
     * 解决:0:未解决,1:解决;
     */
    private byte resolveStatus;

    /**
     * 解决时间
     */
    private Date resolveTime;

    /**
     * 响应时间(秒)
     */
    private Long reponseTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 发布时间
     */
    private Date pubTime;

    private String statusStr;
    private String upDownStr;
    private String opTypeStr;
    private String resolveStatusStr;

    /**
     * 意见类型
     */
    private AtOpinionType type;
    /**
     * 上一级的意见(父)
     */
    private AtOpinionDesc desc;
    private AtUsers createUsers;

    public String getUpDownStr() {
        AtOpinionDescEnum[] values = AtOpinionDescEnum.values();
        for (int i = 0; i < values.length; i++) {
            AtOpinionDescEnum dataTemp = values[i];
            /*
             * toString:变量名 name:枚举的键, getstatus:枚举的值
             */
            if (dataTemp.toString().startsWith("UPDOWN")) {
                if(null == this.upDown){
                    this.upDownStr = "";
                    return upDownStr;
                }
                if (dataTemp.getStatus() == this.upDown) {
                    this.upDownStr = dataTemp.getName();
                }
            }
        }
        return upDownStr;
    }

    public String getOpTypeStr() {
        AtOpinionDescEnum[] values = AtOpinionDescEnum.values();
        for (int i = 0; i < values.length; i++) {
            AtOpinionDescEnum dataTemp = values[i];
            /*
             * toString:变量名 name:枚举的键, getstatus:枚举的值
             */
            if (dataTemp.toString().startsWith("OPTYPE_")) {
                if (dataTemp.getStatus() == this.opType) {
                    this.opTypeStr = dataTemp.getName();
                }
            }
        }
        return opTypeStr;
    }

    public String getResolveStatusStr() {
        AtOpinionDescEnum[] values = AtOpinionDescEnum.values();
        for (int i = 0; i < values.length; i++) {
            AtOpinionDescEnum dataTemp = values[i];
            /*
             * toString:变量名 name:枚举的键, getstatus:枚举的值
             */
            if (dataTemp.toString().startsWith("RESOLVESTATUS")) {
                if (dataTemp.getStatus() == this.resolveStatus) {
                    this.resolveStatusStr = dataTemp.getName();
                }
            }
        }
        return resolveStatusStr;
    }

    public String getStatusStr() {
        AtOpinionDescEnum[] values = AtOpinionDescEnum.values();
        for (int i = 0; i < values.length; i++) {
            AtOpinionDescEnum dataTemp = values[i];
            /*
             * toString:变量名 name:枚举的键, getstatus:枚举的值
             */
            if (dataTemp.toString().startsWith("STATUS")) {
                if (dataTemp.getStatus() == this.status) {
                    this.statusStr = dataTemp.getName();
                }
            }
        }
        return statusStr;
    }
}